
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>微服务中核心组件以及微服务的优劣 - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>微服务中核心组件以及微服务的优劣 - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">在微服务架构中，服务发现（Service Discovery）组件的核心功能和工作原理是什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">它的核心功能是自动注册和发现服务实例，动态地管理服务的地址和状态。其工作原理是服务实例在启动时注册到服务发现系统，其他服务则通过该系统来查找需要调用的服务实例。</div>
          </div>
          <div class="card-source">来源: 微服务核心组件 - 服务发现（Service Discovery）</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">组件</div>
          <div class="card-question">什么是服务网关（API Gateway）？它在微服务中扮演哪些关键角色？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">组件</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">服务网关是统一处理外部请求的组件。它扮演的角色包括提供路由、负载均衡、安全、监控等功能，并通过转发请求到相应的微服务来处理认证、授权、限流等跨切面功能。</div>
          </div>
          <div class="card-source">来源: 微服务核心组件 - 服务网关（API Gateway）</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">断路器（Circuit Breaker）模式是如何防止微服务系统中的连锁反应的？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">断路器通过监控微服务的健康状态来防止连锁反应。它会检测服务调用的失败情况，当失败次数达到预设的阈值时，就会触发断路器，从而阻止后续的请求继续流向已出现问题的服务。</div>
          </div>
          <div class="card-source">来源: 微服务核心组件 - 断路器（Circuit Breaker）</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">微服务架构在技术选型和开发部署方面有哪些主要优势？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">主要优势包括：1. 技术多样性，各微服务可使用不同技术栈；2. 快速开发和部署，小型团队可以独立开发和部署，提高效率和交付速度。</div>
          </div>
          <div class="card-source">来源: 微服务架构的优缺点 - 优势</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">挑战</div>
          <div class="card-question">采用微服务架构会带来哪些与数据和调试相关的挑战？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">挑战</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">主要挑战有两个：1. 数据一致性，跨服务的数据一致性难以保证，需要引入分布式事务或事件驱动机制。2. 调试难度，由于微服务间的调用链复杂，导致故障定位和调试的难度增加。</div>
          </div>
          <div class="card-source">来源: 微服务架构的优缺点 - 劣势</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">分布式追踪（Distributed Tracing）系统是如何帮助开发者分析性能瓶颈的？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">它通过在请求的每个微服务调用中插入追踪信息，记录下请求的完整路径和在各个服务中的延迟信息，从而帮助开发者跟踪请求在服务间的流转，进而分析性能瓶颈和调试问题。</div>
          </div>
          <div class="card-source">来源: 微服务核心组件 - 分布式追踪（Distributed Tracing）</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">相较于单体架构，微服务架构在容错性和维护性方面有何优势？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">优势在于：1. 容错性，某个微服务的故障不会导致整个系统崩溃，增强了系统的可靠性。2. 易于维护和升级，微服务可以被独立地更新和维护，减少了对整个系统的影响。</div>
          </div>
          <div class="card-source">来源: 微服务架构的优缺点 - 优势</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">挑战</div>
          <div class="card-question">为什么说微服务架构会增加运维成本和系统复杂性？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">挑战</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">因为微服务架构引入了服务间的通信、数据一致性、网络延迟等分布式系统问题，增加了系统的整体复杂性。同时，运维团队需要管理多个服务的部署、监控和维护，这无疑增加了运维的工作量和成本。</div>
          </div>
          <div class="card-source">来源: 微服务架构的优缺点 - 劣势</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">组件</div>
          <div class="card-question">微服务架构中，配置管理（Configuration Management）组件的作用及其实现原理是什么？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">组件</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">它的作用是集中管理和动态配置微服务的配置信息。其实现原理是将配置信息统一存储在配置服务器中，各个微服务在启动时或运行时从配置服务器动态获取配置。</div>
          </div>
          <div class="card-source">来源: 微服务核心组件 - 配置管理（Configuration Management）</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
